// pages/login/login.js
const validateUtil = require('../../utils/validateUtil')
const {
  loginUser,
  resetLogin
} = require('../../apis/api')

import { createStoreBindings } from 'mobx-miniprogram-bindings'
import { store } from '../../store/store'

Page({

  /**
   * 页面的初始数据
   */
  data: {
    loading: false,

    account: "",
    password: ""
  },

  /**
   * 登陆按钮点击事件
   */
  login() {
    this.setData({
      loading: true
    })

    // 数据校验
    let account = this.data.account
    let password = this.data.password
    if (!validateUtil.validateEmail(account) || !validateUtil.validatePassword(password)) {
      wx.showToast({
        title: '请输入正确的账号或密码',
        icon: 'none'
      })
      this.setData({
        loading: false
      })
      return
    }

    // 登陆
    loginUser(account, password, (res) => {
      if (res.data.code === 200) {
        // 登陆成功，设置全局变量
        this.setUsername(res.data.data.user_name)
        this.setUserAvatar(res.data.data.user_avatar)
        this.setEmail(res.data.data.email)
        this.setToken(res.data.data.token)
        // 持久化登录态
        wx.setStorageSync('token', res.data.data.token)
        console.log("登录",res.data.data)
        // 覆盖跳转
        wx.reLaunch({
          url: '/pages/index/index',
        })
      } else {
        // 登陆失败
        wx.showToast({
          title: res.data.message,
          icon: 'none'
        })
      }
      this.setData({
        loading: false
      })
    })
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    this.storeBindings = createStoreBindings(this, {
      store,
      // fields: ['username', 'userAvatar', 'email', 'token'],
      actions: ['setUsername', 'setUserAvatar', 'setEmail', 'setToken'],
    })

    // 持久化登录态
    wx.showLoading({
      title: '加载中...',
    })
    let token = wx.getStorageSync('token')
    resetLogin(token, (res) => {
      if (res.data.code === 200) {
        // 登陆成功，设置全局变量
        this.setUsername(res.data.data.user_name)
        this.setUserAvatar(res.data.data.user_avatar)
        this.setEmail(res.data.data.email)
        this.setToken(res.data.data.token)
        // 持久化登录态
        wx.setStorageSync('token', res.data.data.token)
        // 覆盖跳转
        wx.reLaunch({
          url: '/pages/index/index',
        })
      } else {
        // // 登陆失败
        // wx.showToast({
        //   title: res.data.message,
        //   icon: 'none'
        // })
      }
      wx.hideLoading({
        success: (res) => {},
      })
    })
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {
    
  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {
    this.storeBindings.destroyStoreBindings()
  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})